home *** CD-ROM | disk | FTP | other *** search
/ Aminet 21 / Aminet 21 (1997)(GTI - Schatztruhe)[!][Oct 1997].iso / Aminet / dev / misc / gms_dev.lha / GMS / Source / C / Screens / DoubleBuffer.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-07-05  |  971 b   |  43 lines

  1. /*
  2. ** Name:      Double Buffer Demo
  3. ** Author:    Paul Manias
  4. ** Copyright: DreamWorld Productions © 1996-1997.
  5. ** Doc:       This simple demo shows how to double buffer the screen.
  6. **
  7. ** SAS/C:     1> sc DoubleBuffer.c link startup=LIB:gms.o data=far nostackcheck
  8. **  Dice:     1> dcc -l0 -mD gms.o DoubleBuffer.c -o DoubleBuffer
  9. **
  10. */
  11.  
  12. #include <proto/games.h>
  13.  
  14. extern struct GMSBase *GMSBase;
  15. ULONG  PREFSNAME = DEFAULT;
  16.  
  17. void main(void)
  18. {
  19.   struct Picture *picture;
  20.   struct GameScreen *screen;
  21.  
  22.   if (picture = LoadPicFile("GMS:demos/data/PIC.Green",GETPALETTE|VIDEOMEM)) {
  23.  
  24.      screen = GetScreen();
  25.      CopyStructure(picture,screen);
  26.      screen->MemPtr1 = picture->Data;
  27.      screen->Attrib  = DBLBUFFER|CENTRE;
  28.  
  29.      if (screen = AddScreen(screen)) {
  30.  
  31.         ShowScreen(screen);
  32.         while (!(ReadJoyPort(JPORT1,JT_ZBXY)&MB_LMB)) {
  33.           WaitVBL();
  34.           SwapBuffers(screen);
  35.         }
  36.  
  37.      FreePic(picture);
  38.      }
  39.   DeleteScreen(screen);
  40.   }
  41. }
  42.  
  43.